package cn.gson.crm.model.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import cn.gson.crm.model.entity.Cuikuan;
import cn.gson.crm.model.entity.Payrecord;
import cn.gson.crm.model.entity.PayrecordDetail;

/**
 * 收款记录mapper
 * @author john
 *
 */
@Mapper
public interface PayrecordMapper {
	/**
	 * 查询所有收款记录
	 * @param payRecord
	 * @return
	 */
	List<Payrecord> findAllPayrecord(Payrecord payRecord);
	
	/**
	 * 查询所有高中生的收款记录
	 * @param payRecord
	 * @return
	 */
	List<Payrecord> findAllPayrecords(Payrecord payRecord);
	
	/**
	 * 查询所有大学生的收款记录
	 * @param payRecord
	 * @return
	 */
	List<Payrecord> findAllPayrecordss(Payrecord payRecord);
	
	/**
	 * 查询所有学员的名称
	 * @return
	 */
	List<Map<String,Object>> selectAllStudentName();
	
	/**
	 * 查询所有员工的名称
	 * @return
	 */
	List<Map<String,Object>> selectAllEmpName();
	

	/**
	 * 查询所有班级的名称
	 * @return
	 */
	List<Map<String,Object>> selectAllClassName();
	
	
	
	
	/**
	 * 查询收款记录的详情
	 * @param detail
	 * @return
	 */
	List<PayrecordDetail> findAllPayrecordDetail(Long id);
	
	/**
	 * 学员缴费的总金额
	 * @param id
	 * @return
	 */
	Double sumMoney(Long id);
	
	Long findCount(Long id);
	
	
	/**
	 * 根据员工id查询催款记录
	 * @param detail
	 * @return
	 */
	List<Cuikuan> findAllCuiKuan(Long id);
	
	
	/**
	 * 根据记录Id查询收款详情
	 * @param id
	 * @return
	 */
	PayrecordDetail findPayreordDetailById(Long id);
	
	
	/**
	 * 根据ID查收款记录
	 * @param id
	 * @return
	 */
	Payrecord findPayreordById(Long id);
	
	/**
	 * 查询待分班的学生
	 * @return
	 */
	List<Map<String,Object>> selectAllStudentNameByRecord();
	
	/**
	 * 统计月入账
	 * @return
	 */
	Integer AllMoneyOfEveryMonth(@Param("months") String months);

}
